/**
   * excel导出
   * 需要的参数：
   * 必须传入的：三项
   * rows：  需要的导出的数据  调取你的数据列表 在一页内返回        格式：[{},{}.....]
   * headersArr ： 表头               格式：['姓名', '手机号', '入职日期', '聘用形式', '转正日期', '工号', '部门']
   * headersRelations：与表头对应的英文名  ！！！英文名是你需要导出的数据的属性名！！！ 格式：  { 姓名: 'username'}
   *
   * 可选的参数：
   * filename ：导出的文件名  默认为：数据表
*/
export const handleDownload = async (rows, headersArr, headersRelations, filename, dealFn) => {
  // 调用处理数据格式的方法，传数据
  const arr = formateData(rows, headersArr, headersRelations, dealFn)
  // 懒加载   header：表头   data：数据（数组格式） filename：文件名  autoWidth：单元格宽度自适应  bookType：文件后缀名
  import('@/vendor/Export2Excel').then(excel => {
    excel.export_json_to_excel({
      header: headersArr,
      data: arr,
      filename: filename || '数据表',
      autoWidth: true,
      bookType: 'xlsx'
    })
  })
}
/**
   * 处理导出的数据
   */
function formateData (rows, headersArr, headersRelations, dealFn) {
  const result = []
  rows.forEach(item => {
    const tempArr = []
    headersArr.forEach(key => {
      // 根据中文属性名，得到英文
      const englishKey = headersRelations[key]
      // 再到源数据里得到与英文对应的属性值
      let value = item[englishKey]
      if (dealFn) {
        value = dealFn(value, englishKey)
      }
      tempArr.push(value)
    })
    result.push(tempArr)
  })
  // 返回二维数组
  return result
}
